/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package src.application.Doppelkopf;

import src.application.Doppelkopf.Client;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;
import src.application.Doppelkopf.HSpieler;
import src.application.Doppelkopf.Karte;


/**
 * Frame fürs Spielfeld
 * @author schroedtert
 */
public class SpielFrame extends javax.swing.JFrame {
    Client client;
    private HSpieler spieler; //tipparbeit sparen
    private final String pfadBack ="/src/data/cards/backs/"; 
    private String pfadFront ="/src/data/cards/normal/";
    private JLabel[] playercards;
    private JLabel[] leftcards;
    private JLabel[] topcards;
    private JLabel[] rightcards;
    private JLabel[] stich;
    private JLabel[] anzeigeRe;
    private JButton[] ansagen;
    private VorbehaltFrame vorbehaltF;
    private boolean re;
    Karte[] handkarten;  
    Karte[] stichKarten; 
    boolean normal = true;
    boolean[] partei;
    private int aktAnsageBt = 0;
    
    /**
     * Spielframe wird initialisiert
     * Benötigt wird Client um die Daten senden zu können
     * 
     * @param c Client 
     */
    public SpielFrame(Client c) {
        initComponents();
        client = c;
        spieler = (HSpieler)client.getSpieler();
        handkarten = spieler.handkarten;
        stichKarten = spieler.stich;
        vorbehaltF = new VorbehaltFrame(this);
        vorbehaltF.setVisible(false);
        playercards = new JLabel[]{ playerCard0, playerCard1, playerCard2, playerCard3,playerCard4,
                                 playerCard5, playerCard6, playerCard7, playerCard8, playerCard9};
       
        topcards = new JLabel[]{ topCard0, topCard1, topCard2, topCard3, topCard4,
                                 topCard5, topCard6, topCard7, topCard8, topCard9};
        
        rightcards = new JLabel[]{ rightCard0, rightCard1, rightCard2, rightCard3, rightCard4,
                                 rightCard5, rightCard6, rightCard7, rightCard8, rightCard9};
        
        leftcards = new JLabel[]{ leftCard0, leftCard1, leftCard2, leftCard3, leftCard4,
                                 leftCard5, leftCard6, leftCard7, leftCard8, leftCard9};
        
        stich = new JLabel[]{playedPlayer, playedLeft, playedTop, playedRight};
       
        partei = new boolean[4];
        ansagen = new JButton[5];
        ansagen[1]=btNeunzig;
        ansagen[2]=btSechzig;
        ansagen[3]=btDreissig;
        ansagen[4]=btSchwarz;
        anzeigeRe = new JLabel[]{labelParteiLeft, labelParteiTop, labelParteiRight};
        
        // Für alle Karten ein Listener
        for (int i=0; i<handkarten.length; ++i)
        {
            playercards[i].addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                cardClicked(evt);
            }
        });
        }
        
        //Nachrichtenfenster nur lesbar
        this.txtNachrichten.setEditable(false);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        btGroupBacks = new javax.swing.ButtonGroup();
        btGroupFront = new javax.swing.ButtonGroup();
        diaGewinner = new javax.swing.JDialog();
        jLayeredPane3 = new javax.swing.JLayeredPane();
        playerCard9 = new javax.swing.JLabel();
        playerCard2 = new javax.swing.JLabel();
        playerCard0 = new javax.swing.JLabel();
        playerCard1 = new javax.swing.JLabel();
        playerCard3 = new javax.swing.JLabel();
        playerCard4 = new javax.swing.JLabel();
        playerCard5 = new javax.swing.JLabel();
        playerCard6 = new javax.swing.JLabel();
        playerCard7 = new javax.swing.JLabel();
        playerCard8 = new javax.swing.JLabel();
        jLayeredPane4 = new javax.swing.JLayeredPane();
        leftCard0 = new javax.swing.JLabel();
        leftCard1 = new javax.swing.JLabel();
        leftCard2 = new javax.swing.JLabel();
        leftCard3 = new javax.swing.JLabel();
        leftCard4 = new javax.swing.JLabel();
        leftCard5 = new javax.swing.JLabel();
        leftCard6 = new javax.swing.JLabel();
        leftCard7 = new javax.swing.JLabel();
        leftCard8 = new javax.swing.JLabel();
        leftCard9 = new javax.swing.JLabel();
        jLayeredPane5 = new javax.swing.JLayeredPane();
        rightCard9 = new javax.swing.JLabel();
        rightCard8 = new javax.swing.JLabel();
        rightCard7 = new javax.swing.JLabel();
        rightCard6 = new javax.swing.JLabel();
        rightCard5 = new javax.swing.JLabel();
        rightCard4 = new javax.swing.JLabel();
        rightCard3 = new javax.swing.JLabel();
        rightCard2 = new javax.swing.JLabel();
        rightCard1 = new javax.swing.JLabel();
        rightCard0 = new javax.swing.JLabel();
        jLayeredPane7 = new javax.swing.JLayeredPane();
        playedLeft = new javax.swing.JLabel();
        playedTop = new javax.swing.JLabel();
        playedRight = new javax.swing.JLabel();
        playedPlayer = new javax.swing.JLabel();
        labelRightName = new javax.swing.JLabel();
        labelLeftName = new javax.swing.JLabel();
        labelTopName = new javax.swing.JLabel();
        labelParteiLeft = new javax.swing.JLabel();
        labelParteiTop = new javax.swing.JLabel();
        labelParteiRight = new javax.swing.JLabel();
        btRe = new javax.swing.JButton();
        btContra = new javax.swing.JButton();
        jLayeredPane1 = new javax.swing.JLayeredPane();
        topCard0 = new javax.swing.JLabel();
        topCard9 = new javax.swing.JLabel();
        topCard8 = new javax.swing.JLabel();
        topCard7 = new javax.swing.JLabel();
        topCard6 = new javax.swing.JLabel();
        topCard5 = new javax.swing.JLabel();
        topCard4 = new javax.swing.JLabel();
        topCard3 = new javax.swing.JLabel();
        topCard2 = new javax.swing.JLabel();
        topCard1 = new javax.swing.JLabel();
        labelPlayerName = new javax.swing.JLabel();
        btNeunzig = new javax.swing.JButton();
        btSechzig = new javax.swing.JButton();
        btDreissig = new javax.swing.JButton();
        btSchwarz = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        txtNachrichten = new javax.swing.JTextArea();
        jMenuBar5 = new javax.swing.JMenuBar();
        menuAnsicht = new javax.swing.JMenu();
        menuAnsichtBacks = new javax.swing.JMenu();
        rbBackChooserNormal = new javax.swing.JRadioButtonMenuItem();
        rbBackChooserHearts = new javax.swing.JRadioButtonMenuItem();
        rbBackChooserJahreszeiten = new javax.swing.JRadioButtonMenuItem();
        menuAnsichtFront = new javax.swing.JMenu();
        rbFrontChooserNormal = new javax.swing.JRadioButtonMenuItem();
        rbFrontChooserJahreszeiten = new javax.swing.JRadioButtonMenuItem();
        menuHilfe = new javax.swing.JMenu();
        menuItemRegeln = new javax.swing.JMenuItem();

        diaGewinner.setTitle("Stichgewinner");
        diaGewinner.setAlwaysOnTop(true);
        diaGewinner.setIconImage(null);

        javax.swing.GroupLayout diaGewinnerLayout = new javax.swing.GroupLayout(diaGewinner.getContentPane());
        diaGewinner.getContentPane().setLayout(diaGewinnerLayout);
        diaGewinnerLayout.setHorizontalGroup(
            diaGewinnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        diaGewinnerLayout.setVerticalGroup(
            diaGewinnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setBackground(new java.awt.Color(0, 0, 0));
        setForeground(new java.awt.Color(255, 51, 0));

        playerCard9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard9.setBounds(720, 0, 81, 110);
        jLayeredPane3.add(playerCard9, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playerCard2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard2.setBounds(160, 0, 81, 110);
        jLayeredPane3.add(playerCard2, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playerCard0.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard0.setBounds(0, 0, 81, 110);
        jLayeredPane3.add(playerCard0, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playerCard1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard1.setBounds(80, 0, 81, 110);
        jLayeredPane3.add(playerCard1, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playerCard3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard3.setBounds(240, 0, 81, 110);
        jLayeredPane3.add(playerCard3, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playerCard4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard4.setBounds(320, 0, 81, 110);
        jLayeredPane3.add(playerCard4, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playerCard5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard5.setBounds(400, 0, 81, 110);
        jLayeredPane3.add(playerCard5, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playerCard6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard6.setBounds(480, 0, 81, 110);
        jLayeredPane3.add(playerCard6, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playerCard7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard7.setBounds(560, 0, 81, 110);
        jLayeredPane3.add(playerCard7, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playerCard8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playerCard8.setBounds(640, 0, 81, 110);
        jLayeredPane3.add(playerCard8, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard0.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard0.setBounds(0, 0, 80, 58);
        jLayeredPane4.add(leftCard0, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard1.setBounds(0, 40, 80, 58);
        jLayeredPane4.add(leftCard1, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard2.setBounds(0, 80, 80, 58);
        jLayeredPane4.add(leftCard2, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard3.setBounds(0, 120, 80, 58);
        jLayeredPane4.add(leftCard3, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard4.setBounds(0, 160, 80, 58);
        jLayeredPane4.add(leftCard4, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard5.setBounds(0, 200, 80, 58);
        jLayeredPane4.add(leftCard5, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard6.setBounds(0, 240, 80, 58);
        jLayeredPane4.add(leftCard6, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard7.setBounds(0, 280, 80, 58);
        jLayeredPane4.add(leftCard7, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard8.setBounds(0, 320, 80, 58);
        jLayeredPane4.add(leftCard8, javax.swing.JLayeredPane.DEFAULT_LAYER);

        leftCard9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/left/1.png"))); // NOI18N
        leftCard9.setBounds(0, 360, 80, 58);
        jLayeredPane4.add(leftCard9, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard9.setToolTipText("");
        rightCard9.setBounds(0, 0, 80, 58);
        jLayeredPane5.add(rightCard9, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard8.setToolTipText("");
        rightCard8.setBounds(0, 40, 80, 58);
        jLayeredPane5.add(rightCard8, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard7.setToolTipText("");
        rightCard7.setBounds(0, 80, 80, 58);
        jLayeredPane5.add(rightCard7, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard6.setToolTipText("");
        rightCard6.setBounds(0, 120, 80, 58);
        jLayeredPane5.add(rightCard6, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard5.setToolTipText("");
        rightCard5.setBounds(0, 160, 80, 58);
        jLayeredPane5.add(rightCard5, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard4.setToolTipText("");
        rightCard4.setBounds(0, 200, 80, 58);
        jLayeredPane5.add(rightCard4, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard3.setToolTipText("");
        rightCard3.setBounds(0, 240, 80, 58);
        jLayeredPane5.add(rightCard3, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard2.setToolTipText("");
        rightCard2.setBounds(0, 280, 80, 58);
        jLayeredPane5.add(rightCard2, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard1.setToolTipText("");
        rightCard1.setBounds(0, 320, 80, 58);
        jLayeredPane5.add(rightCard1, javax.swing.JLayeredPane.DEFAULT_LAYER);

        rightCard0.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/right/1.png"))); // NOI18N
        rightCard0.setToolTipText("");
        rightCard0.setBounds(0, 360, 80, 58);
        jLayeredPane5.add(rightCard0, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playedLeft.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playedLeft.setBounds(230, 150, 81, 110);
        jLayeredPane7.add(playedLeft, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playedTop.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playedTop.setBounds(370, 30, 81, 110);
        jLayeredPane7.add(playedTop, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playedRight.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playedRight.setBounds(500, 150, 81, 110);
        jLayeredPane7.add(playedRight, javax.swing.JLayeredPane.DEFAULT_LAYER);

        playedPlayer.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/normal/d2.png"))); // NOI18N
        playedPlayer.setBounds(390, 270, 81, 110);
        jLayeredPane7.add(playedPlayer, javax.swing.JLayeredPane.DEFAULT_LAYER);

        labelRightName.setText("Spieler ..");
        labelRightName.setBounds(730, 310, 60, 14);
        jLayeredPane7.add(labelRightName, javax.swing.JLayeredPane.DEFAULT_LAYER);

        labelLeftName.setText("Spieler ..");
        labelLeftName.setBounds(0, 70, 60, 14);
        jLayeredPane7.add(labelLeftName, javax.swing.JLayeredPane.DEFAULT_LAYER);

        labelTopName.setText("Spieler ..");
        labelTopName.setBounds(550, 10, 50, 14);
        jLayeredPane7.add(labelTopName, javax.swing.JLayeredPane.DEFAULT_LAYER);

        labelParteiLeft.setText("Re");
        labelParteiLeft.setBounds(0, 90, 34, 14);
        jLayeredPane7.add(labelParteiLeft, javax.swing.JLayeredPane.DEFAULT_LAYER);

        labelParteiTop.setText("Re");
        labelParteiTop.setBounds(550, 30, 13, 14);
        jLayeredPane7.add(labelParteiTop, javax.swing.JLayeredPane.DEFAULT_LAYER);

        labelParteiRight.setText("Re");
        labelParteiRight.setBounds(730, 330, 34, 14);
        jLayeredPane7.add(labelParteiRight, javax.swing.JLayeredPane.DEFAULT_LAYER);

        btRe.setText("Re");
        btRe.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ansageClicked(evt);
            }
        });

        btContra.setText("Contra");
        btContra.setMaximumSize(new java.awt.Dimension(100, 23));
        btContra.setMinimumSize(new java.awt.Dimension(100, 23));
        btContra.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ansageClicked(evt);
            }
        });

        topCard0.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard0.setBounds(540, 20, 58, 80);
        jLayeredPane1.add(topCard0, javax.swing.JLayeredPane.DEFAULT_LAYER);

        topCard9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard9.setBounds(0, 20, 58, 80);
        jLayeredPane1.add(topCard9, javax.swing.JLayeredPane.DEFAULT_LAYER);

        topCard8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard8.setBounds(60, 20, 58, 80);
        jLayeredPane1.add(topCard8, javax.swing.JLayeredPane.DEFAULT_LAYER);

        topCard7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard7.setBounds(120, 20, 58, 80);
        jLayeredPane1.add(topCard7, javax.swing.JLayeredPane.DEFAULT_LAYER);

        topCard6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard6.setBounds(180, 20, 58, 80);
        jLayeredPane1.add(topCard6, javax.swing.JLayeredPane.DEFAULT_LAYER);

        topCard5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard5.setBounds(240, 20, 58, 80);
        jLayeredPane1.add(topCard5, javax.swing.JLayeredPane.DEFAULT_LAYER);

        topCard4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard4.setBounds(300, 20, 58, 80);
        jLayeredPane1.add(topCard4, javax.swing.JLayeredPane.DEFAULT_LAYER);

        topCard3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard3.setBounds(360, 20, 58, 80);
        jLayeredPane1.add(topCard3, javax.swing.JLayeredPane.DEFAULT_LAYER);

        topCard2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard2.setBounds(420, 20, 58, 80);
        jLayeredPane1.add(topCard2, javax.swing.JLayeredPane.DEFAULT_LAYER);

        topCard1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/src/data/cards/backs/top/1.png"))); // NOI18N
        topCard1.setBounds(480, 20, 58, 80);
        jLayeredPane1.add(topCard1, javax.swing.JLayeredPane.DEFAULT_LAYER);

        labelPlayerName.setText("Du");

        btNeunzig.setText("Keine 90");
        btNeunzig.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ansageClicked(evt);
            }
        });

        btSechzig.setText("Keine 60");
        btSechzig.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ansageClicked(evt);
            }
        });

        btDreissig.setText("Keine 30");
        btDreissig.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ansageClicked(evt);
            }
        });

        btSchwarz.setText("Schwarz");
        btSchwarz.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ansageClicked(evt);
            }
        });

        txtNachrichten.setColumns(20);
        txtNachrichten.setRows(5);
        jScrollPane2.setViewportView(txtNachrichten);

        menuAnsicht.setText("Ansicht");

        menuAnsichtBacks.setText("Karten Rückseite");

        btGroupBacks.add(rbBackChooserNormal);
        rbBackChooserNormal.setSelected(true);
        rbBackChooserNormal.setText("Normal");
        rbBackChooserNormal.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                rbBackChooserNormalStateChanged(evt);
            }
        });
        menuAnsichtBacks.add(rbBackChooserNormal);

        btGroupBacks.add(rbBackChooserHearts);
        rbBackChooserHearts.setText("Hearts");
        rbBackChooserHearts.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                rbBackChooserHeartsMouseClicked(evt);
            }
        });
        rbBackChooserHearts.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                rbBackChooserHeartsStateChanged(evt);
            }
        });
        menuAnsichtBacks.add(rbBackChooserHearts);

        btGroupBacks.add(rbBackChooserJahreszeiten);
        rbBackChooserJahreszeiten.setText("Jahreszeiten");
        rbBackChooserJahreszeiten.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                rbBackChooserJahreszeitenStateChanged(evt);
            }
        });
        menuAnsichtBacks.add(rbBackChooserJahreszeiten);

        menuAnsicht.add(menuAnsichtBacks);

        menuAnsichtFront.setText("Blatt");

        btGroupFront.add(rbFrontChooserNormal);
        rbFrontChooserNormal.setSelected(true);
        rbFrontChooserNormal.setText("Normal");
        rbFrontChooserNormal.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                rbFrontChooserNormalStateChanged(evt);
            }
        });
        menuAnsichtFront.add(rbFrontChooserNormal);

        btGroupFront.add(rbFrontChooserJahreszeiten);
        rbFrontChooserJahreszeiten.setText("Jahreszeiten");
        rbFrontChooserJahreszeiten.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                rbFrontChooserJahreszeitenStateChanged(evt);
            }
        });
        menuAnsichtFront.add(rbFrontChooserJahreszeiten);

        menuAnsicht.add(menuAnsichtFront);

        jMenuBar5.add(menuAnsicht);

        menuHilfe.setText("Hilfe");

        menuItemRegeln.setText("Regeln ");
        menuItemRegeln.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuItemRegelnActionPerformed(evt);
            }
        });
        menuHilfe.add(menuItemRegeln);

        jMenuBar5.add(menuHilfe);

        setJMenuBar(jMenuBar5);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 600, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(198, 198, 198))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(labelPlayerName)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(btSchwarz)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(btDreissig)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(btSechzig)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(btNeunzig)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(btContra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(btRe, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(177, 177, 177))))
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(14, 14, 14)
                        .addComponent(jLayeredPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLayeredPane7)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLayeredPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap(30, Short.MAX_VALUE)
                        .addComponent(jLayeredPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 801, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(5, 5, 5)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLayeredPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 454, Short.MAX_VALUE)
                    .addComponent(jLayeredPane5)
                    .addComponent(jLayeredPane7))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(labelPlayerName)
                        .addGap(8, 8, 8)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(btSchwarz)
                            .addComponent(btDreissig)
                            .addComponent(btSechzig)
                            .addComponent(btNeunzig)
                            .addComponent(btContra, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btRe))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLayeredPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 171, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /**
     * starteRunde startet ein Spiel (10 Stiche)
     * Die Stichkarten in der Mitte werden auf nicht sichtbar gesetzt.
     * Die eigenen Karten werden angezeigt.
     * Die Buttons im VorbehaltFrame werden je nach Karten gesetzt.
     * VorbehaltFrame wird gestartet.
     * 
     * Alle Buttons im SpielFrame aktivieren.
     */
    public void starteRunde()
    {
        // Zeigt keine Stichkarten in der Mitte an
        for (int i=0; i<stich.length; ++i)
        {
            stich[i].setVisible(false);
        }
        
        for (int i=0; i<10; ++i)
        {
            topcards[i].setVisible(true);
            leftcards[i].setVisible(true);
            rightcards[i].setVisible(true);
        }
        //Zeigt keine Parteien am Anfang an
        for (int i=0; i<anzeigeRe.length; ++i)
        {
            anzeigeRe[i].setVisible(false);
        }
        
        //Eigene Karten anziegne
        kartenAnzeigen();
        
        //VorbehaltFrame einstellen
        vorbehaltF.setButtons(spieler.getSchweine(), spieler.getHochzeit(), spieler.getArmut(), spieler.getSchmeissen());
        vorbehaltF.setVisible(true);
        
        
        // Karten noch mal sortieren
        // Spielart ausgeben wenn nicht normal
        re = client.getSpieler().getRe();
       
        if (re)
        {
            ansagen[0]=btRe;
            btContra.setVisible(false);
        }
        else
        {
            ansagen[0]=btContra;
            btRe.setVisible(false);
        }
        
        ansagen[0].setVisible(true);
        for (int i=1; i<ansagen.length; ++i)
        {
            ansagen[i].setVisible(false);
        }
    }
    
    /**
     * Setze die Namen der anderen Spieler
     * @param s1    eigener Name<br>
     * @param s2    Name Spieler links<br>
     * @param s3    Name Spieler oben<br>
     * @param s4    Name Spieler rechts
     */
    public void setNamen(String s1, String s2, String s3, String s4){
        this.labelPlayerName.setText(s1);
        this.labelLeftName.setText(s2);
        this.labelTopName.setText(s3);
        this.labelRightName.setText(s4);
    }
    
    private void cardClicked(java.awt.event.MouseEvent evt)
    {
        for (int i=0; i<playercards.length; ++i)
        {
            if ((evt.getSource().equals(playercards[i]))&&(playercards[i].isEnabled()))
            {
                Karte k = handkarten[i];
                client.sende("H#"+k.getFarbe()+"#"+k.getWert()+"#");
                playercards[i].setVisible(false);
                handkarten[i]=null;
                //spieler.stich[0]=k;
                this.zeigeStich();
            }
        }
    }
    private void rbBackChooserHeartsMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rbBackChooserHeartsMouseClicked
        // TODO add your handling code here:
        changeBacks();
    }//GEN-LAST:event_rbBackChooserHeartsMouseClicked

    private void rbBackChooserNormalStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rbBackChooserNormalStateChanged
        // TODO add your handling code here:
            changeBacks();
    }//GEN-LAST:event_rbBackChooserNormalStateChanged

    private void rbBackChooserHeartsStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rbBackChooserHeartsStateChanged
        // TODO add your handling code here:
        changeBacks();
    }//GEN-LAST:event_rbBackChooserHeartsStateChanged

    private void rbBackChooserJahreszeitenStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rbBackChooserJahreszeitenStateChanged
        // TODO add your handling code here:
        changeBacks();
    }//GEN-LAST:event_rbBackChooserJahreszeitenStateChanged

    private void rbFrontChooserNormalStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rbFrontChooserNormalStateChanged
        // TODO add your handling code here:
        changeFront();
    }//GEN-LAST:event_rbFrontChooserNormalStateChanged

    private void rbFrontChooserJahreszeitenStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rbFrontChooserJahreszeitenStateChanged
        // TODO add your handling code here:
        changeFront();
    }//GEN-LAST:event_rbFrontChooserJahreszeitenStateChanged

    /**
     * Kontrolliert welcher Ansage Button geclickt wurde, sperrt diesen und 
     * schaltet den nächsten frei.
     * 
     * @param evt Mausclick
     */
    private void ansageClicked(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ansageClicked
        int ansage=-1;
        char lPartei;
        if (evt.getSource().equals(ansagen[0]))
        {
            ansage = 1;
            ansagen[1].setVisible(true); 
            ansagen[0].setEnabled(false);
            
        }
        else if (evt.getSource().equals(ansagen[1]))
        {
            ansage = 9;
            ansagen[2].setVisible(true); 
            ansagen[1].setEnabled(false);
        }
        else if (evt.getSource().equals(ansagen[2]))
        {
            ansage = 6;
            ansagen[3].setVisible(true); 
            ansagen[2].setEnabled(false);
        }
        else if (evt.getSource().equals(ansagen[3]))
        {
            ansage = 3;
            ansagen[4].setVisible(true); 
            ansagen[3].setEnabled(false);
        }
        else if (evt.getSource().equals(ansagen[4]))
        {
            ansage = 0;
            ansagen[4].setEnabled(false);
        }
        
        if (re) 
        {
            lPartei='R';
        }
        else
        {
            lPartei = 'C';
        }
        
        aktAnsageBt++;
        String text = "A#"+lPartei+"#"+Integer.toString(ansage)+"#";
        client.sende(text);
    }//GEN-LAST:event_ansageClicked

    /**
     * 
     * 
     * @param evt 
     */
    private void menuItemRegelnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuItemRegelnActionPerformed
        // TODO add your handling code here:
        HilfeFrame hilfe = new HilfeFrame();
        hilfe.setVisible(true);
    }//GEN-LAST:event_menuItemRegelnActionPerformed
    
    /**
     * Verändert die Karten Vorderseiten entsprechend der Benutzer Auswahl
     */
    private void changeFront()
    {
        if (rbFrontChooserNormal.isSelected())
            pfadFront ="/src/data/cards/normal/";
        else
            pfadFront ="/src/data/cards/jahreszeiten/";
        
        kartenAnzeigen();
    }
    
    /**
     * Verändert die Karten Rückseiten entsprechend der Benutzer Auswahl
     */
    private void changeBacks()
    {
        String end = "";
        if (rbBackChooserNormal.isSelected())
            end += "/1.png";
        else if (rbBackChooserHearts.isSelected())
            end+= "/2.png";
        else 
            end += "/3.png";
        
  
        for (int i=0; i<10; ++i)
        {
            leftcards[i].setIcon(new javax.swing.ImageIcon(getClass().getResource(pfadBack+"left"+end)));
            leftcards[i].repaint();
            
            rightcards[i].setIcon(new javax.swing.ImageIcon(getClass().getResource(pfadBack+"right"+end)));
            rightcards[i].repaint();
            
            topcards[i].setIcon(new javax.swing.ImageIcon(getClass().getResource(pfadBack+"top"+end)));
            topcards[i].repaint();
        }
    }
    
    /**
     * Sperrt bzw gibt die Karten zum Klicken frei.
     * @param aktiv Karten aktivieren oder deaktivieren
     */
    public void aktiv(boolean aktiv)
    {
        ansagen[aktAnsageBt].setEnabled(aktiv);
        
        for (int i=0; i< playercards.length; ++i)
        {
            playercards[i].setEnabled(aktiv);
        }
    }
    
    /**
     * Karten entfernen die gelegt wurden Gegner!
     * Pre-Condition:
     *      darf nicht öfter als 10 mal pro Spieler aufgerufen werden
     * @param i anderer Spieler
     */
    public void kartenEntfernen(int i)
    {
        int j = 9;
        switch (i)
        {
            case 1:
                while (!leftcards[j].isVisible()) {j--;}
                leftcards[j].setVisible(false);
                break;
            case 2: 
                while (!topcards[j].isVisible()) {j--;}
                topcards[j].setVisible(false);
                break;
            case 3: 
                while (!rightcards[j].isVisible()) {j--;}
                rightcards[j].setVisible(false);
                break;
        }
    }
    
    /**
     * Setzt die Parteien der einzelnen Spieler.
     * Wird aufgerufen, wenn kein normales Spiel, 
     * bzw stille Hochzeit gespielt wird.
     * Hinterher wird angezeigt, welcher Spieler welcher Partei angehört
     * @param i Partei Spieler
     * @param j Partei links 
     * @param k Partei oben 
     * @param l Partei rechts
     */
    public void setPartei(boolean i, boolean j, boolean k, boolean l)
    {
        partei[0]=i;
        partei[1]=j;
        partei[2]=k;
        partei[3]=l;
        zeigeRe();
    }
    
    /**
     * Setze Partei von Spieler i
     * @param partei
     * @param i 
     */
    public void setPartei(boolean partei, int i)
    {
        this.partei[i] = partei;
    }
    
    /**
     * Die Partei des Solospielers wird auf Re gesetzt,
     * die anderen Spieler werden auf Contra gesetzt
     * 
     * @param j Spieler der Solo spielt
     */
    public void setSolo(int j)
    {
        for (int i=0; i<partei.length; ++i)
        {
            partei[i]=false;
        }
        partei[j]=true;
    }
    /**
     * Zeige an, wer Re ist, falls bekannt
     * Wenn Re-Dame gespielt wird, oder ein Spieler ein Solo spielt
     * 
     */
    private void zeigeRe()
    {
        for (int i=0; i<partei.length; ++i)
        {
             anzeigeRe[i].setVisible(partei[i]);
        }
    }
   
    /**
     * Setze Spielerpartei, je nach Spielart!
     * @param re 
     */
    public void setRe(boolean re)
    {
        this.re = re;
        partei[0]= re;
    }
    
    
    /**
     * 
     * Zeigt einen Dialog mit dem Namen des Stichgewinners
     * @param name Name des Spielers, der den Stich gewonnen hat
     * 
     * @deprecated besser <code>zeigeNachricht(String s)</code>
     */
    public void zeigeGewinner(String name)
    {
        txtNachrichten.setText(name + " hat den Stich gewonnen\n");
        /*for (int i=0; i<4; i++){
            client.getSpieler().stich[i] = null;
            stich[i].setVisible(false); 
            
        }
        -> dann geht das spiel nicht weiter 
        weil kein spieler aktiviert wird :( ohne das schon -> aber karten nich gelöscht
        */
    }
    
    /**
     * Zeigt einen Dialog mit dem Namen des Ansagers und der Ansage
     * @param name Name des ansagenden Spielers
     * @param wert mgl 90,60,30,0 
     * @deprecated besser <code>zeigeNachricht(String s)</code>
     */
    public void zeigeAnsage(String name, int wert)
    {
        String nachricht = "" ;
        
        if (wert ==0)
        {
            nachricht = name + " sagt schwarz an";
        }
        else
        {
            nachricht = name + " sagt keine " + wert + " an";
        }
        
        txtNachrichten.setText(nachricht+"\n");
    }

    
    /**
     * Zeigt die Handkarten an
     */
    public void kartenAnzeigen()
    {
        for (int i=0; i<playercards.length; ++i)
        {    
            System.out.println(handkarten[i]);
            Karte aktKarte= handkarten[i];
            String kartenname = aktKarte.getFarbe() + Integer.toString(aktKarte.getWert());
            playercards[i].setIcon(new javax.swing.ImageIcon(getClass().getResource(pfadFront + kartenname +".png")));
            playercards[i].repaint();
            playercards[i].setVisible(true);
        }
    }
    
    
    /**
     * Sperrt die nicht gueltigen Karten
     */
    public void zeigeGueltigeKarten()
    {
        try
        {
            boolean gueltig=false;
            Karte[] gueltigeKarten = spieler.spielbareKarten();

            for (int i=0; i<playercards.length; ++i)
            {
                Karte k = handkarten[i];
                if (k==null)
                {
                    continue;
                }
                gueltig = false;

                for (int j=0; j<gueltigeKarten.length; j++)
                {
                   // System.out.println(k+"\t"+gueltigeKarten[j]+"\n");

                    if ((gueltigeKarten[j]==null))
                    {
                        continue;
                    }
                    if ((k.getFarbe()==gueltigeKarten[j].getFarbe())
                            && (k.getWert()==gueltigeKarten[j].getWert()))
                    {
                        gueltig=true;
                        break;
                    }
                }            
                playercards[i].setEnabled(gueltig);      
            }
        }
        catch (Exception e){e.printStackTrace();}
           
           
        
    
    }
    
    /**
     * Zeigt den aktuellen Stich an
     */
    public void zeigeStich()
    {
        // Stich Karten werden woanders angezeigt
        for (int i=0; i<4; ++i)
        {
            Karte aktKarte= client.getSpieler().stich[i];
            if (aktKarte != null)
            {
                String kartenname = aktKarte.getFarbe() + Integer.toString(aktKarte.getWert());
                stich[i].setIcon(new javax.swing.ImageIcon(getClass().getResource(pfadFront + kartenname +".png")));
                stich[i].repaint();
                stich[i].setVisible(true);
                
            }
            else
            {
                stich[i].setIcon(new javax.swing.ImageIcon(getClass().getResource(pfadFront + "transparent.png")));
                stich[i].repaint();
                stich[i].setVisible(true);
            }
        }
   }
    
    /**
     * Leert den aktuellen Stich
     */
    public void stichLeeren()
    {
        int j = 0;
        for (JLabel i : stich)
        {
            i.setIcon(new javax.swing.ImageIcon(getClass().getResource(pfadFront + "transparent.png")));
            i.repaint();
            i.setVisible(true);
            client.getSpieler().stich[j]= null;
            j++;
        }
    }
    
    /**
     * Schreibt eine Nachricht in die TextBox
     * @param s 
     */
    public void schreibeNachricht(String s)
    {
        txtNachrichten.append("\n" + s);
        //txtNachrichten.setText(txtNachrichten.getText()+s+"\n");
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btContra;
    private javax.swing.JButton btDreissig;
    private javax.swing.ButtonGroup btGroupBacks;
    private javax.swing.ButtonGroup btGroupFront;
    private javax.swing.JButton btNeunzig;
    private javax.swing.JButton btRe;
    private javax.swing.JButton btSchwarz;
    private javax.swing.JButton btSechzig;
    private javax.swing.JDialog diaGewinner;
    private javax.swing.JLayeredPane jLayeredPane1;
    private javax.swing.JLayeredPane jLayeredPane3;
    private javax.swing.JLayeredPane jLayeredPane4;
    private javax.swing.JLayeredPane jLayeredPane5;
    private javax.swing.JLayeredPane jLayeredPane7;
    private javax.swing.JMenuBar jMenuBar5;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JLabel labelLeftName;
    private javax.swing.JLabel labelParteiLeft;
    private javax.swing.JLabel labelParteiRight;
    private javax.swing.JLabel labelParteiTop;
    private javax.swing.JLabel labelPlayerName;
    private javax.swing.JLabel labelRightName;
    private javax.swing.JLabel labelTopName;
    private javax.swing.JLabel leftCard0;
    private javax.swing.JLabel leftCard1;
    private javax.swing.JLabel leftCard2;
    private javax.swing.JLabel leftCard3;
    private javax.swing.JLabel leftCard4;
    private javax.swing.JLabel leftCard5;
    private javax.swing.JLabel leftCard6;
    private javax.swing.JLabel leftCard7;
    private javax.swing.JLabel leftCard8;
    private javax.swing.JLabel leftCard9;
    private javax.swing.JMenu menuAnsicht;
    private javax.swing.JMenu menuAnsichtBacks;
    private javax.swing.JMenu menuAnsichtFront;
    private javax.swing.JMenu menuHilfe;
    private javax.swing.JMenuItem menuItemRegeln;
    private javax.swing.JLabel playedLeft;
    private javax.swing.JLabel playedPlayer;
    private javax.swing.JLabel playedRight;
    private javax.swing.JLabel playedTop;
    private javax.swing.JLabel playerCard0;
    private javax.swing.JLabel playerCard1;
    private javax.swing.JLabel playerCard2;
    private javax.swing.JLabel playerCard3;
    private javax.swing.JLabel playerCard4;
    private javax.swing.JLabel playerCard5;
    private javax.swing.JLabel playerCard6;
    private javax.swing.JLabel playerCard7;
    private javax.swing.JLabel playerCard8;
    private javax.swing.JLabel playerCard9;
    private javax.swing.JRadioButtonMenuItem rbBackChooserHearts;
    private javax.swing.JRadioButtonMenuItem rbBackChooserJahreszeiten;
    private javax.swing.JRadioButtonMenuItem rbBackChooserNormal;
    private javax.swing.JRadioButtonMenuItem rbFrontChooserJahreszeiten;
    private javax.swing.JRadioButtonMenuItem rbFrontChooserNormal;
    private javax.swing.JLabel rightCard0;
    private javax.swing.JLabel rightCard1;
    private javax.swing.JLabel rightCard2;
    private javax.swing.JLabel rightCard3;
    private javax.swing.JLabel rightCard4;
    private javax.swing.JLabel rightCard5;
    private javax.swing.JLabel rightCard6;
    private javax.swing.JLabel rightCard7;
    private javax.swing.JLabel rightCard8;
    private javax.swing.JLabel rightCard9;
    private javax.swing.JLabel topCard0;
    private javax.swing.JLabel topCard1;
    private javax.swing.JLabel topCard2;
    private javax.swing.JLabel topCard3;
    private javax.swing.JLabel topCard4;
    private javax.swing.JLabel topCard5;
    private javax.swing.JLabel topCard6;
    private javax.swing.JLabel topCard7;
    private javax.swing.JLabel topCard8;
    private javax.swing.JLabel topCard9;
    private javax.swing.JTextArea txtNachrichten;
    // End of variables declaration//GEN-END:variables

}


/*
 * To-Do:
 *     
 *      
 * 
 */
